(Pet Frames) Fix Lua error on pet name update in instanced content#72
Merged
DanderBot merged 1 commit intoMay 11, 2026
Merged
Conversation
GetUnitName can return a secret string value in delves and encounters. The previous code called #name and name:sub() on the result, which throws a Lua error the moment any string operation is attempted on a secret value. Routes truncation through DF:UTF8Len / DF:UTF8Sub, which both guard on issecretvalue internally and return safe defaults (0 / "") when the input is secret. The truncation branch no-ops, SetText still receives the secret string, and FontStrings render it correctly without taint. Supersedes PR DanderBot#67 which skipped SetText entirely on secret values, leaving the pet name text stale rather than updating it.
4 tasks
Owner
|
Thanks for the PR! Merged into main and will ship in the next alpha build. |
Krathe82
pushed a commit
to Krathe82/DandersFrames
that referenced
this pull request
Jun 6, 2026
…ue-truncation (Pet Frames) Fix Lua error on pet name update in instanced content
Krathe82
pushed a commit
to Krathe82/DandersFrames
that referenced
this pull request
Jun 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DF:UpdatePetNamecalled#nameandname:sub()on the result ofGetUnitName, which throws a Lua error in delves and encounters where unit names are returned as secret string values in Midnight 12.0.GetUnitNamedoes not guarantee a non-secret result in instanced content (contrary to the assumption in commit b36ffc3).Routes truncation through
DF:UTF8Len/DF:UTF8Sub(the same helpers used inFrames/Bars.lua:UpdateName), which both gate onissecretvalueinternally and return safe defaults when the input is secret. The truncation branch silently no-ops,SetTextstill receives the secret string, and FontStrings render it correctly — only Lua string operations on secret values cause errors.Supersedes PR #67, which guards the entire block with
not issecretvalue(name), preventing the crash but also skippingSetTextentirely — leaving the pet name text stale instead of updating it.Also adds a
maxLen > 0guard, consistent withBars.lua, so a max-length setting of 0 (no limit) is correctly handled.Test plan
/reloadwhile in a delve on a pet class (warlock, hunter, etc.) — no Lua error spam on pet name updatespetNameMaxLength